package pers.vic.boot.util;
import java.io.UnsupportedEncodingException;

import org.apache.commons.lang3.StringUtils;

/**
 * 
 */

/**
 *  @description: 字符串的一些通用操作
 *  @author Vic.xu
 *  @date: 2020年7月7日上午8:28:28
 */
public class StringCommonUtils extends StringUtils{

	private StringCommonUtils() {
		throw new IllegalStateException("Utility class");
	}
	/**
	 * 查询长度 供oracle使用的判断
	 * 其实使用 str.getBytes("UTF-8").length 更方便一些，如果确认了字符编码的话
	 * @param str
	 * @return
	 */
	public static int length4Oracle(String str) {
		if(StringUtils.isBlank(str)) {
			return 0;
		}
		int length = 0;
		char[] cs = str.toCharArray();
		for (char c : cs) {
			//中文
			if ((c >= 0x0391 && c <= 0xFFE5)) {
				length += 3;
				//英文
			}else if(c >= 0x0000 && c <= 0x00FF) {
				length += 1;
		   // 应该很少有else吧	 +3 以预防长度不够	
			}else {
				length += 3;
			}
		}
		return length;
	}
	
	public static void main(String[] args) throws UnsupportedEncodingException {
		String str = ";我？22*簳";
		System.out.println(str.getBytes("UTF-8").length);
		int len = length4Oracle(str);
		System.out.println(len);
	}
}
